package com.engine4cloud.tdf.supervision.dto.create;

import com.engine4cloud.tdf.supervision.dto.JzdxFileDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 突发事件上报
 *
 * @author wenjie
 * @date 2024-04-11 10:23:14
 */
@Data
@Schema(description = "突发事件上报")
public class SpEmergencyReportCreateDTO implements Serializable {

    /**
     * 矫正人员编号
     */
    @Schema(description = "矫正人员编号")
    @NotBlank(message = "社区矫正人员编号不能为空")
    private String rybh;

    /**
     * 发生时间
     */
    @Schema(description = "发生时间", example = "2024-01-01 00:00:00")
    @NotNull(message = "发生时间不能为空")
    private LocalDateTime fssj;

    /**
     * 发生地点
     */
    @Schema(description = "发生地点", example = "**省**市**县**镇**村**号")
    @NotBlank(message = "发生地点不能为空")
    private String fsdd;

    /**
     * 经度
     */
    @Schema(description = "经度", example = "119.156235")
    private String jd;

    /**
     * 纬度
     */
    @Schema(description = "纬度", example = "20.364856")
    private String wd;

    /**
     * 上报人
     */
    @Schema(description = "上报人")
    private String sbr;

    /**
     * 突发事件描述
     */
    @Schema(description = "突发事件描述")
    @NotBlank(message = "突发事件描述不能为空")
    private String tfsjms;

    /**
     * 事件发生地点
     */
    @Schema(description = "事件发生地点", example = "[\"460000\",\"46000A\",\"469006\",\"36327\"]")
    @NotEmpty(message = "事件发生地点不能为空")
    private List<String> areaList;

    /**
     * 相关法律文书材料
     */
    @Schema(description = "文书材料", example = """
            [{"name": "张三.png",
            "url": "/supervision/oss-file/oss/file?fileName=09468fc20f2544e28891a058858fdf58.jpeg"}
            ]""")
    private List<JzdxFileDTO> instrumentList;

}